package com.yitiao.designmodel.behave.chain.check;

import java.util.Objects;

public class NullValueCheckHandler extends AbstractCheckHandler {

    public NullValueCheckHandler() {
    }

    @Override
    Boolean handle(ProductVO param) {
        System.out.println("空值校验 Handler 开始...");

        //降级：如果配置了降级，则跳过此处理器，执行下一个处理器
//        if (super.getConfig().getDown()) {
//            System.out.println("空值校验 Handler 已降级，跳过空值校验 Handler...");
//            return this.next(param);
//        }

        //参数必填校验
        if (Objects.isNull(param)) {
            return false;
        }
        //SkuId商品主键参数必填校验
        if (Objects.isNull(param.getSkuId())) {
            return false;
        }
        //Price价格参数必填校验
        if (Objects.isNull(param.getPrice())) {
            return false;
        }
        //Stock库存参数必填校验
        if (Objects.isNull(param.getStock())) {
            return false;
        }

        System.out.println("空值校验 Handler 通过...");

        //执行下一个处理器
        return this.next(param);
    }

    @Override
    protected Boolean next(ProductVO param) {
        return super.next(param);
    }
}
